# Contributor: ungleich <foss@ungleich.ch>
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: ungleich <foss@ungleich.ch>
pkgname=cri-o
pkgver=1.24.1
pkgrel=0
pkgdesc="OCI-based implementation of Kubernetes Container Runtime Interface"
url="https://github.com/cri-o/cri-o/"
arch="all"
license="Apache-2.0"
 # Most tests will fail if not ran as root
 # since it tries to create network interfaces
options="net chmod-clean !check"
depends="
	cni-plugins
	conmon
	conntrack-tools
	containers-common
	iproute2
	iptables
	runc
	"
makedepends="
	bash
	btrfs-progs-dev
	eudev-dev
	glib-dev
	go
	go-md2man
	gpgme-dev
	libseccomp-dev
	libselinux-dev
	lvm2-dev
	ostree-dev
	tzdata
	"
checkdepends="bats cri-tools jq parallel sudo"
subpackages="
	$pkgname-doc
	$pkgname-bash-completion
	$pkgname-zsh-completion
	$pkgname-fish-completion
	$pkgname-contrib-cni:contrib_cni:noarch
	$pkgname-openrc
	"
source="https://github.com/cri-o/cri-o/archive/v$pkgver/cri-o-$pkgver.tar.gz
	crio.conf
	crio.initd
	crio.logrotated
	cni-plugins-path.patch
	makefile-fix-install.patch
	fix-test.patch
	remove-systemd-files.patch
	"

# secfixes:
#   1.23.2-r0:
#     - CVE-2022-0811
#   1.24.1-r0:
#     - CVE-2022-1708


build() {
	export GOPATH="$srcdir"
	export GOBIN="$GOPATH/bin"
	# https://github.com/cri-o/cri-o/blob/master/install.md#build-tags
	make BUILDTAGS="seccomp selinux containers_image_openpgp containers_image_ostree_stub"
}

check() {
	make localintegration
}

package() {
	make DESTDIR="$pkgdir" PREFIX=/usr CRICTL_CONFIG_DIR="/etc/crio" OCIUMOUNTINSTALLDIR="/etc/crio" install

	# We want it in etc so apk does not overwrite it
	mkdir -p  "$pkgdir"/usr/share/oci-umount/oci-umount.d/
	ln -sf /etc/crio/crio-umount.conf "$pkgdir"/usr/share/oci-umount/oci-umount.d/crio-umount.conf

	install -Dm755 "$srcdir"/crio.initd "$pkgdir"/etc/init.d/crio
	install -Dm644 "$srcdir"/crio.conf "$pkgdir"/etc/crio/crio.conf
	install -Dm644 "$srcdir"/crio.logrotated "$pkgdir"/etc/logrotate.d/crio
}

contrib_cni() {
	pkgdesc="$pkgname contrib cni config files"
	mkdir -p "$subpkgdir"/etc/cni/net.d
	cp "$builddir"/contrib/cni/*.conf "$subpkgdir"/etc/cni/net.d
}

sha512sums="
899efb61c70be3a0e950dc239245e1a4dca66e2130d8b355a7ad73c1e91088a2d42c6a4cc05f879cc6a1252d40294e9a8845fd2b110148a05a9d63f61077c498  cri-o-1.24.1.tar.gz
e026f056ed92489413e16ed7955a9dcd7d1f4df1cc28e3ea785771b44d43811fea4f5b953cc46bc0c4aeac8ad07115bfff304d7516ebd24f2e58fe782ff812c8  crio.conf
29561e95398975748236217bbd9df64997f6e3de6c0555d007306bd0535895a648368385a13079eb7d52c06249a91980523a73b6563e86d0575d9cd9c3fa4ee9  crio.initd
1115228546a696eeebeb6d4b3e5c3152af0c99a2559097fc5829d8b416d979c457b4b1789e0120054babf57f585d3f63cbe49949d40417ae7aab613184bf4516  crio.logrotated
0a567dfa431ab1e53f2a351689be8d588a60cc5fcdbda403ec4f8b6ab9b1c18ad425f6c47f9a5ab1491e3a61a269dc4efa6a59e91e7521fa2b6bb165074aa8e0  cni-plugins-path.patch
f9577aa7b1c90c6809010e9e406e65092251b6e82f6a0adbc3633290aa35f2a21895e1a8b6ba4b6375dcad3e02629b49a34ab16387e1c36eeb32c8f4dac74706  makefile-fix-install.patch
26ed10b478feb19cb11f5916b24301943f9e316fdd62d53ec310bb05ffcf4213ceece1340d2486461557abb04074e85002b11b6347fddaaa45ad7439e907a5a7  fix-test.patch
78c150f87027de489289596371dce0465159ced0758776b445deb58990e099de9c654406183c9da3cc909878b24d28db62121b7056cd180a6f2820e79e165cc6  remove-systemd-files.patch
"
